package com.泛型.可变参数;
//可变参数的使用
import java.util.List;
import java.util.Arrays;
import java.util.Set;
public class VariableParameterDemo1 {
    public static void main(String[] args) {

        /*Arrays工具类
        public static<T> List<E> asList(T...a):返回指定数组支持的固定大小的列表
        * 增删 ×,改 √*/
        List<String> l = Arrays.asList("hello","world");
//        l.add("java");//UnsupportedOperationException  抛出以表示不支持请求的操作
//        l.remove("hello");//UnsupportedOperationException
        l.set(1,"---");
        System.out.println(l);
        System.out.println("------------");

        /*List接口
        public static<T> List<E> of(E... elements):返回包含任意数量元素的不可变列表
         * 增删改 × */
        List<String> l1 = List.of("hello","world");
//        l1.add("java");//UnsupportedOperationException
//        l1.remove("hello");//UnsupportedOperationException
//        l1.set(1,"---");//UnsupportedOperationException
        System.out.println(l1);
        System.out.println("------------");

        /*Set接口
        public static<T> Set<E> of(E...elements):返回一个包含任意数量元素的不可变集合
         * 增删 ×,无改(因为Set集合没有索引,故无法进行修改操作)
         * 元素不重复*/

        /*// IllegalArgumentException 抛出表示一种方法已经通过了非法或不正确的参数。*/
//        Set<String> s1 = Set.of("hello","world","hello");

        Set<String> s = Set.of("hello","world");
//        s.add("java");//UnsupportedOperationException
//        s.remove("hello");//UnsupportedOperationException
//        s.set(1,"---"); //无法解析set方法
        System.out.println(s);
    }

}
